*******************************************
** S-RLS Panel F2F Survey **
** Data Cleaning File      **                                     
*******************************************
clear all
set more off
set maxvar 10000
//ssc install missings 
	
use "${dir}/raw_public/panel_F2F_deidentified.dta", clear  

*****************************CLEANING***************************
**Changing all indicator variables to 0,1
quietly ds , has(type numeric)
	foreach var in `r(varlist)' {
		quietly count if !inlist(`var',.,1,2)
		if `r(N)'==0 {
			assert inlist(`var',.,1,2)==1
			local label1 :  label  `var' 1
			local label2 :  label  `var' 2
			if "`label1'"=="Yes" & "`label2'"=="No" {
				replace `var' = 0 if `var'==2 
				assert inlist(`var',.,1,0)
				lab define `var' 0 "No" 1 "Yes", replace 
				lab values `var' `var'
			} 
		}
	else {
		quietly count if !inlist(`var',.,1,2,-99)
		if `r(N)'==0 {
			assert inlist(`var',.,1,2,-99)==1
			local label1 :  label  `var' 1
			local label2 :  label  `var' 2
			local label9 : label `var' -99
			if "`label1'"=="Yes" & "`label2'"=="No" {
				replace `var' = 0 if `var'==2 
				assert inlist(`var',.,1,0,-99)
				lab define `var' 0 "No" 1 "Yes" -99 "`label9'", replace 
				lab values `var' `var'
				tab `var',mi nolab
			}
		}
	}
}

**Dropping numeric variables with 0 obs
foreach var of varlist _all {
	capture assert mi(`var')
	if !_rc {
		drop `var'
	}
}

**Remove hidden spaces from string variables
ds, has (type string)
local strvars `r(varlist)' 
foreach var of varlist `r(varlist)' {
	replace `var' = strtrim(`var')
}

**Droping all variables with only "." and all string variables with 0 obs
 missings dropvars, force
 
 *destring everything that can be destrung 
ds, has(type string) 
local strvars "`r(varlist)'"
destring `strvars', replace 

ds, has(type string) 
local strvars "`r(varlist)'"
foreach var of varlist `strvars' {
  replace `var' = strtrim(`var')
}


 
 **Renaming variables to match survey document*/
 
 ** Section 2 Renaming 
 
rename q204c_1 q205bcitizen

 ** Section 17.2 Renaming

rename q17_2_04 q17_2_02
rename q17_2_05 q17_02_03

 ** Section 18.2 Renaming

rename q18_2_01a q18_3_01a
rename q18_2_01a_who q18_3_01a_who
rename q18_2_01b q18_3_01b
rename q18_2_01b_who q18_3_01b_who
rename q18_2_01c q18_3_01c
rename q18_2_01c_who q18_3_01c_who
rename q18_2_01d q18_3_01d
rename q18_2_01d_who q18_3_01d_who
rename q18_2_01e q18_3_01e
rename q18_2_01e_who q18_3_01e_who
rename q18_2_01f q18_3_01f
rename q18_2_01f_who q18_3_01f_who
rename q18_2_01g q18_3_01g
rename q18_2_01g_who q18_3_01g_who

 ** Section 17.1 Renaming

rename q17_1_01_1 q17_1_01a
rename q17_1_01_2 q17_1_01b
rename q17_1_01_3 q17_1_01c
rename q17_1_01_4 q17_1_01d
rename q17_1_01_5 q17_1_01e
rename q17_1_01_6 q17_1_01f
rename q17_1_01_7 q17_1_01g
rename q17_1_01_8 q17_1_01h
rename q17_1_01_9 q17_1_01i
rename q17_1_01_10 q17_1_01j
rename q17_1_01_11 q17_1_01k
rename q17_1_01_12 q17_1_01l
rename q17_1_01_13 q17_1_01m
rename q17_1_01_14 q17_1_01n
rename q17_1_01_15 q17_1_01o
rename q17_1_01_16 q17_1_01p
rename q17_1_01_17 q17_1_01q
rename q17_1_01_18 q17_1_01r
rename q17_1_01_19 q17_1_01s
rename q17_1_01_20 q17_1_01t
rename q17_1_01_21 q17_1_01u

 ** Section 14 Renaming

 rename q1404c q1404c0
 rename q1404c_units q1404c0_units
 rename q1404d q1404c1
 rename q1404d_unit q1404c_unit
 rename q1404d_unit_other q1404c_unit_other
 rename q1404d_unit_other_C1 q1404c_unit_other_c1 
 rename q1404e_year q1404d_year
 rename q1404e_month q1404d_month
 rename q1404f q1404e
 rename q1404g q1404f
 rename q1404g_* q1404f_*
 rename q1608a q1606a

 drop q1606a //not yet publically available
 
**drop CTO variable
assert do_did =="did you attend" if q401==0
assert do_did =="do you currently attending" if q401==1
drop do_did

*drop number of individuals under 19
cap drop __00000?
egen n_kids = rowtotal(under19_counter_*)
lab var n_kids "Number of individual <19 years old in hh"

**drop redundant variable
assert q601a== q601a_null
drop  q601a_null

**everyone was surveyed about the same sections in the same order,
**so these variables are safe to drop
forv n=1/9 {
  assert s7_1_index_`n'==`n' if !mi(s7_1_index_`n')
  drop s7_1_index_`n' 
}

forv n=1/8 {
  tab s9_item_eng_`n'
  assert s9_index_`n'==`n' if !mi(s9_index_`n')
  drop s9_index_`n' s9_item_eng_`n'
}

 ** Section 11.2 cleaning **

**80  Driver (public or private) (delivery work)
replace q11_2_03_1=80 if q11_2_03_1==-96 & ustrregexm(q11_2_03_other_1,"عامل توصيل")  //ﻞﻴﺻﻮﺗ ﻞﻣﺎﻋ
**  Other skilled construction work (painter) 75
replace q11_2_03_1=75 if q11_2_03_1==-96 & ustrregexm(q11_2_03_other_1,"دهين") //ﻦﻴﻫﺩ
**  Mechanic ("tire technician") 20
replace q11_2_03_1=20 if q11_2_03_1==-96 & ustrregexm(q11_2_03_other_1,"عامل في  بناشر") //ﺮﺷﺎﻨﺑ  ﻲﻓ ﻞﻣﺎﻋ

**add codes for freelancer, gas station attendent/car wash, porter (G9 codes)
forv n=1/3 {
  label define q11_2_03_`n' 86 "Freelancer"87 "Gas station/car wash attendant" 88 "Porter", add
  lab values q11_2_03_`n' q11_2_03_`n'
}
forv n=1/3 {
  quietly count if q11_2_03_`n'==-96 
  if `r(N)'!=0 {
    replace q11_2_03_`n' = 86 if q11_2_03_`n'==-96 & ustrregexm(q11_2_03_other_`n',"أعمال حره") 
**freelancer ﻩﺮﺣ ﻝﺎﻤﻋﺃ
    replace q11_2_03_`n' = 87 if q11_2_03_`n'==-96 & ustrregexm(q11_2_03_other_`n',"عتال") 
**porter ﻝﺎﺘﻋ
    replace q11_2_03_`n' = 88 if q11_2_03_`n'==-96 & ///
      ustrregexm(q11_2_03_other_`n',"محطه محروقات|غسيل سيارات") //gas station/car wash attendent ﺕﺎﻗﻭﺮﺤﻣ ﻪﻄﺤﻣ|ﺕاﺭﺎﻴﺳ ﻞﻴﺴﻏ
  }
}

**Replace tailoring as retail trade for seamstresses
replace q11_2_04_1=6 if q11_2_04_1==-96 & ustrregexm(q11_2_04_other_1, "خياط") //ﻁﺎﻴﺧ

label define q11_2_04_1 21 "Freelancing", add 
lab values q11_2_04_1 q11_2_04_1
replace q11_2_04_1=21 if q11_2_04_1==-96 & q11_2_04_other_1=="عمل حر" //ﺮﺣ ﻞﻤﻋ

**WORK PATTERNS - add "irregular"
label define q11_2_06_1 4 "Irregular" , add
label values q11_2_06_1 q11_2_06_1
replace q11_2_06_1 = 4 if q11_2_06_1==-96 & q11_2_06_other_1=="متفرق غير منتظم" //ﻢﻈﺘﻨﻣ ﺮﻴﻏ

**WHY NOT LOOKING FOR WORK
label define q11_2_16 15  "Old age" 16  "Refusal from family to work" 17  "Waiting for job to start" ///
   18  "Social stigma" 19  "Don't have a work permit" 20  "Still a trainee/intern" ///
   21  "Waiting for university admission", add
lab values q11_2_16 q11_2_16
decode q11_2_16_other_C1, gen(trash)


replace q11_2_16 = 15 if trash == "Due to being old (Senior citizen)"
replace q11_2_16 = 16 if trash == "Refusal from family to work"
replace q11_2_16 = 17 if trash == "Waiting to be appointed in a job"
replace q11_2_16 = 18 if trash == "Societal difficulties"
replace q11_2_16 = 19 if trash == "Does not have a work permit"
replace q11_2_16 = 20 if trash == "Still a trainee/intern"
replace q11_2_16 = 21 if trash == "Waiting for university admission"

**Correcting currency label 

foreach var of varlist q7_1_3_amount_units_* {
    replace `var' = -99 if `var' == 9
}

**Correcting currency label q1404_units

replace q1404a_units = -99 if q1404a_units == 3

** Correcting missings label 
replace q803_utility_winter_1 =-99 if q803_utility_winter_1 == .99
replace q803_utility_summer_1 =-99 if q803_utility_summer_1 == .99

save "${dir}/intermediate_public/panel_F2F_deidentified_clean.dta", replace

